package com.css.openapi.feign;

import com.css.openapi.config.YljyConfig;
import com.css.openapi.feign.dto.*;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

/**
 * @description: 银联校验feign
 * @Title: YljyCommonClient
 * @Author xlw
 * @Package com.invoice.tcc.feign.yljy
 * @Date 2025/9/11 14:08
 */
@FeignClient(url = "${yljy.url}", name = "Yljy", configuration = YljyConfig.class)
public interface YljyCommonClient {

    /**
     * 1. 运营商3要素验证
     *
     * @param requestDTO 请求参数（含请求头）
     * @return 验证响应
     */
    @PostMapping("/ums-verfiy/v1/api")
    UnionPayMobile3FactorResponseDTO mobile3FactorVerify(@RequestBody UnionPayMobile3FactorRequestDTO requestDTO);

    /**
     * 2. 银行卡验证
     *
     * @param requestDTO 请求参数（含请求头）
     * @return 验证响应
     */
    @PostMapping("/ums-verfiy/v1/api")
    UnionPayBankCardVerifyResponseDTO bankCardVerify(@RequestBody UnionPayBankCardVerifyRequestDTO requestDTO);

    /**
     * 银行卡归属地查询接口
     * 对应文档：0.9银行卡归属地查询
     *
     * @param requestDTO 请求参数（含通用请求头+业务字段）
     * @return 归属地查询响应（含卡bin、发卡机构、归属地等信息）
     */
    @PostMapping("/ums-verfiy/v1/api")
    BankCardLocationQueryResponseDTO queryBankCardLocation(@RequestBody BankCardLocationQueryRequestDTO requestDTO);

    /**
     * 3. 人脸H5验证
     *
     * @param requestDTO 请求参数（含请求头）
     * @return 验证响应（含H5认证URL）
     */
    @PostMapping("/ums-verfiy/v1/api")
    UnionPayFaceH5VerifyResponseDTO faceH5Verify(@RequestBody UnionPayFaceH5VerifyRequestDTO requestDTO);

    /**
     * 人脸H5验证结果查询（10分钟内可查）
     * 对应文档：0.11人脸H5验证结果查询
     *
     * @param requestDTO 请求参数（含通用请求头）
     * @return 查询响应
     */
    @PostMapping("/ums-verfiy/v1/api")
    FaceH5VerifyResultQueryResponseDTO faceH5VerifyResultQuery(@RequestBody FaceH5VerifyResultQueryRequestDTO requestDTO);

    /**
     * 联用系统认证结果查询
     * 对应文档：0.13联用系统认证结果查询
     *
     * @param requestDTO 请求参数（含通用请求头）
     * @return 查询响应
     */
    @PostMapping("/ums-verfiy/v1/api")
    JointSystemAuthResultQueryResponseDTO jointSystemAuthResultQuery(@RequestBody JointSystemAuthResultQueryRequestDTO requestDTO);

    /**
     * 联用系统接入参数申请
     *
     * @param requestDTO 请求参数（含通用请求头）
     * @return 查询响应
     */
    @PostMapping("/ums-verfiy/v1/api")
    IntegratedSystemParameterResponseDTO integratedSystemParameterApply(@RequestBody IntegratedSystemParameterRequestDTO requestDTO);

    /**
     * 人脸H5验证结果通知（第三方接入平台人脸H5验证传如）
     *
     * @param requestDTO 请求参数（含通用请求头）
     * @return 查询响应
     */
    @PostMapping("/ums-verfiy/v1/api")
    FaceH5VerifyResultNotifyResponseDTO faceH5VerifyResultNotify(@RequestBody FaceH5VerifyResultNotifyRequestDTO requestDTO);

}
